package emil.poker.players;

import emil.poker.Decision;
import emil.poker.Hand;
import emil.poker.Poker;
import emil.poker.Stack;


public interface Player {
	public Decision getLegalDecision( Decision decision, Decision[] legalDecisions );
	public boolean decisionIsLegal( Decision decision, Decision[] list );
	public void displayInfo();
	void setHasFolded( boolean b ); 
	boolean hasFolded( );
	Hand getHand();
	void setHand(Hand hand);
	String getName();
	void setName(String name);
	void setGame(Poker poker);
	Poker getGame();
	void clearHand();
	void bet(int potSize);
	Stack getStack();
	void setStack(Stack stack);
	Decision check();
	Decision call();
	Decision fold();
	Decision bet();
	Decision raise();
	Decision quit();
	boolean isAllIn();
	void setAllIn( boolean b );
	int getBettedSize();
	void setBettedSize(int d);
	Decision makeDecision(Decision[] legalDecisions);
	boolean isDealer();
	boolean isSmallBlind();
	boolean isBigBlind();
	void setDealer( boolean b );
	void setSmallBlind( boolean b );
	void setBigBlind( boolean b );
	Decision getLastDecision();
	void setLastDecision( Decision decision );
}
